#ifndef __ZLIST_H__
#define __ZLIST_H__

typedef struct zlist {

	// the def val is zero
	int m_capacity;

	// the def val is zero
	int m_len;

	// the def val is NULL
	void ** m_data;

} zlist, *pzlist;

// create an instance of zlist
pzlist zlist_create();

// add an item
int zlist_add(pzlist pobj, void * item);

// clear all
int zlist_clear(pzlist pobj, void(*cb)(void * item));

// delete the instance
void zlist_delete(pzlist * ppobj);

#endif
